package dxg_interview;

import java.util.concurrent.ArrayBlockingQueue;

public class Test_Answer {
         
       public static void main(String[] args) throws InterruptedException {
             
           System.out.println("begin:"+(System.currentTimeMillis()/1000));  
           /*模拟处理16行日志，下面的代码产生了16个日志对象，当前代码需要运行16秒才能打印完这些日志。 
           修改程序代码，开四个线程让这16个对象在4秒钟打完。 
           */

           final ArrayBlockingQueue<Object> queue = new ArrayBlockingQueue(16);

           for(int i=0;i<16;i++){  //这行代码不能改动  
               final String log = ""+(i+1);//这行代码不能改动  
               {
                        queue.put(log);
               }  
           }

           for (int i=0;i<4;i++){
                new Thread(){
                    @Override
                    public void run() {
                        while (true){

                            try {
                                Test_Answer.parseLog((String) queue.take()); // 一样有几率顺序不一致
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }.start();
           }

       }  
         
       //parseLog方法内部的代码不能改动  
       public static void parseLog(String log){  
           System.out.println(log+":"+(System.currentTimeMillis()/1000));  
             
           try {  
               Thread.sleep(1000);  
           } catch (InterruptedException e) {  
               e.printStackTrace();  
           }          
       }  
         
   }  